home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Libraries / DCLAP 4j / DBio / DSeqFile.h < prev    next >
Encoding:
Text File  |  1995-12-17  |  2.1 KB  |  90 lines  |  [TEXT/R*ch]

  1. // DSeqFile.h 
  2. // by d.g.gilbert, Oct 1990 
  3.  
  4.  
  5. #ifndef __DSEQFILE__
  6. #define __DSEQFILE__
  7.  
  8.  
  9.         
  10.  
  11. #include "DSequence.h"
  12. #include <DFile.h>
  13. #include <DList.h>
  14.  
  15. class DSeqList;
  16.  
  17.     // reader/writer formats
  18.  
  19. class DSeqFile 
  20. {
  21. public:
  22.  
  23.  enum seqformats {
  24.      kIG            =  1,
  25.      kGenBank       =  2,
  26.      kNBRF          =  3,
  27.      kEMBL          =  4,
  28.      kGCG           =  5,
  29.      kStrider       =  6,
  30.      kFitch         =  7,
  31.      kPearson       =  8,
  32.      kZuker         =  9,
  33.      kOlsen         =  10,
  34.      kPhylip2       =  11,
  35.      kPhylip4       =  12,
  36.      kPhylip3       =  12, //kPhylip4,
  37.      kPhylip        =  12, //kPhylip4,
  38.      kPlain         =  13, /* keep this at #13  */
  39.      kPIR           =  14,
  40.      kMSF           =  15,
  41.      kASN1          =  16,
  42.      kPAUP          =  17,
  43.      kPretty        =  18,
  44.     
  45.      kMaxFormat     =  18,
  46.      kMinFormat     =  1,
  47.      kNoformat      =  -1,    /* format not tested */
  48.      kUnknown       =  0,     /* format not determinable */
  49.     
  50.         /* subsidiary types */
  51.      kASNseqentry   =  51,
  52.      kASNseqset     =  52,
  53.      kPhylipInterleave = 61,
  54.      kPhylipSequential = 62 
  55.      };
  56.  
  57.     static Boolean gWriteMasks;
  58.     
  59.     static const char* FormatName(short index); 
  60.     static short FormatFromName(const char* name); 
  61.     
  62.     static short SeqFileFormatWrapper(DFile* aFile); 
  63.     
  64.     static short ReadSeqFile( DFile* aFile, DSeqList* aSeqList); 
  65.     
  66.     static void    WriteSeqHeader( DFile* aFile,
  67.                                 short format, short nseqs, long nbases,    char* outputName,
  68.                                 Boolean& needSameSize, Boolean& isInterleaved);
  69.                                 
  70.     static void    WriteSeqTrailer(  DFile* aFile,
  71.                                 short format, short nseqs, short nlinesperseq, long nbases);
  72.                                 
  73.     static void WriteSeqWrapper(  DFile* aFile,
  74.                                 char *seq, long seqlen, short outform, char *seqid);
  75.  
  76.     static void WriteMaskWrapper(  DFile* aFile,
  77.                                 char *mask, long seqlen, short outform, char *seqid);
  78.                                                                 
  79.     static void    DoInterleave( DFile* aFile, DFile* fromFile,
  80.                                 short outform, short seqtype, short nseqs, long nbases,
  81.                                 short nlines, short noutindex, long* outindex);
  82. private:
  83.     static char*  FixSeqID( char* s, short leftmargin = 0);
  84. };
  85.  
  86.  
  87. extern char* gOutputName;
  88.  
  89. #endif
  90.